#include <boost/shared_ptr.hpp>
#include <iostream>
#include <ql/quantlib.hpp>

using namespace std;
using namespace QuantLib;

class  FixedRateBondForwardWrap: public QuantLib::FixedRateBondForward
{  
		public:  
		FixedRateBondForwardWrap(QuantLib::FixedRateBondForward fwdBond,  const QuantLib::FixedRateBond& bond,  int settlementDate, int deliveryDate, double factor, double price);
		~FixedRateBondForwardWrap(void);
		
		QuantLib::Real FixedRateBondForwardWrap::NPV();
		QuantLib::Real FixedRateBondForwardWrap::price();
		QuantLib::Real FixedRateBondForwardWrap::underlyingCleanPrice();
		QuantLib::Real FixedRateBondForwardWrap::underlyingDirtyPrice();
		QuantLib::Date FixedRateBondForwardWrap::settlementDate();
		QuantLib::Date FixedRateBondForwardWrap::deliveryDate();
		QuantLib::Real FixedRateBondForwardWrap::underlyingAccruedAmount(Date settlementDate);
		QuantLib::Real FixedRateBondForwardWrap::income();
	
		private:
		double factor_;
		double price_;
		int settlementDate_;
		int deliveryDate_;
		
		QuantLib::FixedRateBond underlying_;
};
